package com.ruoyi.appService.wxuser.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import  com.ruoyi.system.domain.BaseDTO;
import java.util.Date;


/**
 * 微信用户对象 z_wxuser
 *
 * @author ç¹è½æ²
 * @date 2025-03-31
 */
@Data
//@TableName(resultMap = "com.ruoyi.appService.wxuser.mapper.ZWxuserMapper.ZWxuserResult")
@TableName("z_wxuser")
public class ZWxuser extends BaseDTO {
//    继承的几个字段用了mybatisPlus的注解
//    自动给生成属性并不是在接收参数的时候生成，而是在操作数据库时生成。
//    很灵性，如果时新增数据，id就会自动生成
//    mybatisPlus会自动在where加个条件，del为0就表示没删，如果为1就表示这个数据删了。
    private static final long serialVersionUID = 1L;




    /**
     * 用户id
     */
//    @TableId(value = "id", type = IdType.AUTO)
//    private int id;

    /**
     * openid
     */
    @Excel(name = "openid")
    private String openid;

    /**
     * 昵称
     */
    @Excel(name = "昵称")
    private String nickname;

    /**
     * 性别
     */
    @Excel(name = "性别")
    private Integer sex;

    /**
     * 头像
     */
    @Excel(name = "头像")
    private String avatar;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    private String telephone;

    /**
     * 学号
     */
    @Excel(name = "学号")
    @TableField("studentID")
    private String studentID;

    /**
     * 密码
     */
    @Excel(name = "密码")
//    @TableField(exist = false)
    private String password;

    /**
     * 逻辑删除
     */
//    @Excel(name = "逻辑删除")
//    @TableLogic
//    private Integer deleted;

    /**
     * 是否启用
     */
    @Excel(name = "是否启用")
    private Integer disabled;

//    姓名
    private String name;

    //出生日期
@JsonFormat(pattern = "yyyy-MM-dd")// 将日期型数据转化为指定格式的字符串返回给前端  ，前端发送这个格式的字符串也能转化为日期
    private Date birth;

//    入学年份
@TableField("enterSchoolYear")
    private String enterSchoolYear;
//学历等级
@TableField("DegreeGrade")
    private String DegreeGrade;
//学历类型
@TableField("DegreeType")
    private String DegreeType;
//    学籍状态
@TableField("schoolStatu")
    private String schoolStatu;


//    @Override
//    public int getIsDel() {
//        return super.getIsDel();
//    }
//
//    @Override
//    public Date getUpdateTime() {
//        return super.getUpdateTime();
//    }
//
//    @Override
//    public Date getCreateTime() {
//        return super.getCreateTime();
//    }
//
//    @Override
//    public Integer getId() {
//        return super.getId();
//    }
//
//    @Override
//    public void setId(Integer id) {
//        super.setId(id);
//    }
//
//    @Override
//    public void setCreateTime(Date createTime) {
//        super.setCreateTime(createTime);
//    }
//
//    @Override
//    public void setUpdateTime(Date updateTime) {
//        super.setUpdateTime(updateTime);
//    }
//
//    @Override
//    public void setIsDel(int isDel) {
//        super.setIsDel(isDel);
//    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("openid", getOpenid())
                .append("nickname", getNickname())
                .append("sex", getSex())
                .append("avatar", getAvatar())
                .append("telephone", getTelephone())
                .append("studentID", getStudentID())
                .append("password", getPassword())
                .append("name", getName())
                .append("birth", getBirth())
                .append("enterSchoolYear", getEnterSchoolYear())
                .append("DegreeGrade", getDegreeGrade())
                .append("DegreeType", getDegreeType())
                .append("schoolStatu", getSchoolStatu())
                .append("creatTime",getCreateTime())
                .append("updateTime",getUpdateTime())
                .append("isDel",getIsDel())
                .toString();
    }
}